/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.persistencia.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author root
 */
@Entity
@Table(name = "inventario")
@NamedQueries({
    @NamedQuery(name = "Inventario.findAll", query = "SELECT i FROM Inventario i"),
    @NamedQuery(name = "Inventario.findByCodinventario", query = "SELECT i FROM Inventario i WHERE i.codinventario = :codinventario"),
    @NamedQuery(name = "Inventario.findByTotal", query = "SELECT i FROM Inventario i WHERE i.total = :total"),
    @NamedQuery(name = "Inventario.findBySaldopro", query = "SELECT i FROM Inventario i WHERE i.saldopro = :saldopro"),
    @NamedQuery(name = "Inventario.findByPedirq", query = "SELECT i FROM Inventario i WHERE i.pedirq = :pedirq"),
    @NamedQuery(name = "Inventario.findByStockmaximo", query = "SELECT i FROM Inventario i WHERE i.stockmaximo = :stockmaximo"),
    @NamedQuery(name = "Inventario.findByStockcomprometido", query = "SELECT i FROM Inventario i WHERE i.stockcomprometido = :stockcomprometido"),
    @NamedQuery(name = "Inventario.findByFechastockcomprometido", query = "SELECT i FROM Inventario i WHERE i.fechastockcomprometido = :fechastockcomprometido"),
    @NamedQuery(name = "Inventario.findByDigitador", query = "SELECT i FROM Inventario i WHERE i.digitador = :digitador"),
    @NamedQuery(name = "Inventario.findByFechadigitador", query = "SELECT i FROM Inventario i WHERE i.fechadigitador = :fechadigitador")})
public class Inventario implements Serializable {
    @Column(name = "fechastockcomprometido")
    @Temporal(TemporalType.DATE)
    private Date fechastockcomprometido;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechadigitador")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechadigitador;
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "codinventario")
    private String codinventario;
    @Basic(optional = false)
    @NotNull
    @Column(name = "total")
    private double total;
    @Basic(optional = false)
    @NotNull
    @Column(name = "saldopro")
    private double saldopro;
    @Basic(optional = false)
    @NotNull
    @Column(name = "pedirq")
    private double pedirq;
    @Basic(optional = false)
    @NotNull
    @Column(name = "stockmaximo")
    private double stockmaximo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "stockcomprometido")
    private double stockcomprometido;
    @Basic(optional = false)
    @NotNull
    @Column(name = "digitador")
    private int digitador;
    @JoinColumn(name = "tallatacosuela_fk", referencedColumnName = "codtallatacosuela")
    @OneToOne
    private Tallatacosuela tallatacosuelaFk;
    @JoinColumn(name = "forro_fk", referencedColumnName = "codmateriaprima")
    @OneToOne
    private Forro forroFk;
    @JoinColumn(name = "cuero_fk", referencedColumnName = "codmateriaprima")
    @OneToOne
    private Cuero cueroFk;
    @JoinColumn(name = "agregado_fk", referencedColumnName = "codmateriaprima")
    @OneToOne
    private Agregado agregadoFk;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "inventarioFk")
    private List<Movimientoinventario> movimientoinventarioList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "inventarioFk")
    private List<Ordenaprovisionamiento> ordenaprovisionamientoList;

    public Inventario() {
    }

    public Inventario(String codinventario) {
        this.codinventario = codinventario;
    }

    public Inventario(String codinventario, double total, double saldopro, double pedirq, double stockmaximo, double stockcomprometido, int digitador, Date fechadigitador) {
        this.codinventario = codinventario;
        this.total = total;
        this.saldopro = saldopro;
        this.pedirq = pedirq;
        this.stockmaximo = stockmaximo;
        this.stockcomprometido = stockcomprometido;
        this.digitador = digitador;
        this.fechadigitador = fechadigitador;
    }

    public String getCodinventario() {
        return codinventario;
    }

    public void setCodinventario(String codinventario) {
        this.codinventario = codinventario;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    public double getSaldopro() {
        return saldopro;
    }

    public void setSaldopro(double saldopro) {
        this.saldopro = saldopro;
    }

    public double getPedirq() {
        return pedirq;
    }

    public void setPedirq(double pedirq) {
        this.pedirq = pedirq;
    }

    public double getStockmaximo() {
        return stockmaximo;
    }

    public void setStockmaximo(double stockmaximo) {
        this.stockmaximo = stockmaximo;
    }

    public double getStockcomprometido() {
        return stockcomprometido;
    }

    public void setStockcomprometido(double stockcomprometido) {
        this.stockcomprometido = stockcomprometido;
    }

    public int getDigitador() {
        return digitador;
    }

    public void setDigitador(int digitador) {
        this.digitador = digitador;
    }

    public Tallatacosuela getTallatacosuelaFk() {
        return tallatacosuelaFk;
    }

    public void setTallatacosuelaFk(Tallatacosuela tallatacosuelaFk) {
        this.tallatacosuelaFk = tallatacosuelaFk;
    }

    public Forro getForroFk() {
        return forroFk;
    }

    public void setForroFk(Forro forroFk) {
        this.forroFk = forroFk;
    }

    public Cuero getCueroFk() {
        return cueroFk;
    }

    public void setCueroFk(Cuero cueroFk) {
        this.cueroFk = cueroFk;
    }

    public Agregado getAgregadoFk() {
        return agregadoFk;
    }

    public void setAgregadoFk(Agregado agregadoFk) {
        this.agregadoFk = agregadoFk;
    }

    public List<Movimientoinventario> getMovimientoinventarioList() {
        return movimientoinventarioList;
    }

    public void setMovimientoinventarioList(List<Movimientoinventario> movimientoinventarioList) {
        this.movimientoinventarioList = movimientoinventarioList;
    }

    public List<Ordenaprovisionamiento> getOrdenaprovisionamientoList() {
        return ordenaprovisionamientoList;
    }

    public void setOrdenaprovisionamientoList(List<Ordenaprovisionamiento> ordenaprovisionamientoList) {
        this.ordenaprovisionamientoList = ordenaprovisionamientoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codinventario != null ? codinventario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Inventario)) {
            return false;
        }
        Inventario other = (Inventario) object;
        if ((this.codinventario == null && other.codinventario != null) || (this.codinventario != null && !this.codinventario.equals(other.codinventario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mrp.persistencia.entity.Inventario[ codinventario=" + codinventario + " ]";
    }

    public Date getFechastockcomprometido() {
        return fechastockcomprometido;
    }

    public void setFechastockcomprometido(Date fechastockcomprometido) {
        this.fechastockcomprometido = fechastockcomprometido;
    }

    public Date getFechadigitador() {
        return fechadigitador;
    }

    public void setFechadigitador(Date fechadigitador) {
        this.fechadigitador = fechadigitador;
    }
    
}
